package com.qf.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qf.mapper.DtsRegionMapper;
import com.qf.pojo.DtsRegion;
import com.qf.service.DtsRegionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * projectName:workspace_6
 * author:hyn
 * time:2021/12/2 16:01
 * description:
 */
@Service
public class DtsRegionServiceImpl implements DtsRegionService {
    @Autowired
    private DtsRegionMapper regionMapper;
    @Override
    public Map<DtsRegion, Map<DtsRegion, List<DtsRegion>>> findAll() {
//        QueryWrapper<DtsRegion> wrapper = new QueryWrapper<>();
//        List<DtsRegion> regionList = regionMapper.selectList(wrapper);
//        Map<DtsRegion, Map<DtsRegion, List<DtsRegion>>> map = new HashMap<>();

//        Map<DtsRegion,  List<DtsRegion>> map1 = new HashMap<>();
//
//        List<DtsRegion> list = new ArrayList<>();
//
//        map1.put(regionList.get(0),list);
//
//        map.put(regionList.get(0),map1);

        //循环所有城市
        Map<DtsRegion, Map<DtsRegion, List<DtsRegion>>> map = new HashMap<>();
//        for(int i = 0;i < regionList.size();i++){
//            if(regionList.get(i).getPid() == 0){
//                Map<DtsRegion,  List<DtsRegion>> map2 = new HashMap<>();
//                for(int j = 0;j < regionList.size();j++){
//                    if(regionList.get(i).getId() == regionList.get(j).getPid()){
//                        List list1 = new ArrayList<>();
//                        for(int k = 0;k < regionList.size();k++){
//                            if(regionList.get(j).getId() == regionList.get(k).getPid()){
//                                list1.add(regionList.get(k));
//                            }
//                        }
//                        map2.put(regionList.get(j),list1);
//                    }
//                }
//                map.put(regionList.get(i),map2);
//            }
//        }
        return map;


    }

    @Override
    public String findByPid(Integer provinceId) {
        QueryWrapper<DtsRegion> wrapper = new QueryWrapper<>();
        wrapper.eq("id",provinceId);
        DtsRegion dtsRegion = regionMapper.selectOne(wrapper);
        return dtsRegion.getName();
    }

    @Override
    public String findByCid(Integer cityId) {
        QueryWrapper<DtsRegion> wrapper = new QueryWrapper<>();
        wrapper.eq("id",cityId);
        DtsRegion dtsRegion = regionMapper.selectOne(wrapper);
        return dtsRegion.getName();
    }

    @Override
    public String findBAid(Integer areaId) {
        QueryWrapper<DtsRegion> wrapper = new QueryWrapper<>();
        wrapper.eq("id",areaId);
        DtsRegion dtsRegion = regionMapper.selectOne(wrapper);
        return dtsRegion.getName();
    }
    @Override
    public IPage<DtsRegion> findPage(Integer page, Integer limit, String name, Integer code) {
        IPage<DtsRegion> ipage = new Page<>(page, limit);

        QueryWrapper<DtsRegion> wrapper = new QueryWrapper<>();

        if(!StringUtils.isEmpty(name)){
            wrapper.like("name", name);
        }

        if(!StringUtils.isEmpty(code)){
            wrapper.eq("code", code);
        }
        ipage = regionMapper.selectPage(ipage,wrapper );

        return ipage;
    }
}
